<?php
namespace app\api\controller;
use think\Controller;
use app\common\lib;

class Upload extends Controller
{
    /**
     * 通用方法
     * 上传图片 若没有规定，可以统一使用该方法
     * 如果有硬性规定，请复制该方法
     * @return string json save_name
     */
    public function upload_img()
    {
        $isLogin = lib\Tools::isLogin();
        if(!$isLogin) {
            return show('500','请登录后操作');
        }
        $file = request()->file('file');
        $dir = '__STATIC__/../img/';
        $info = $file->move($dir);
        if($info && $info->getPathname()) {
            return show('200',$info->getSaveName());
        }else {
            return show('500', '上传失败');
        }
        return show('500', '上传失败');
    }

    /**
     * 通用方法
     * 上传视频 若没有规定，可以统一使用该方法
     * 唯一视频，如宣传品类，若多视频添加，请使用图片方法
     * 如果有硬性规定，请复制该方法
     * @return string json save_name
     */
    public function upload_video()
    {
        $isLogin = lib\Tools::isLogin();
        if(!$isLogin) {
            return show('500','请登录后操作');
        }
        $file = request()->file('file');
        $dir = '__STATIC__/../video/';
        $info = $file->move($dir);
        if($info && $info->getPathname()) {
            $_res = Model('Config')->save(['value'=>$info->getSaveName()],['name'=>'video']);
            if(!$_res) {
                return show('500', '数据库错误，上传失败');
            }
            return show('200', '上传成功！');
        }else {
            return show('500', '上传失败');
        }
        return show('500', '上传失败');
    }

    /**
     * 系统Logo更新，勿删除
     * @return \think\response\Json
     */
    public function change_logo()
    {
        $isLogin = lib\Tools::isLogin();
        if(!$isLogin) {
            return show('500','请登录后操作');
        }
        $file = request()->file('file');
        $dir = '__STATIC__/../logo/';
        $info = $file->move($dir);
        if($info && $info->getPathname()) {
            $_res = Model('Config')->save(['value'=>$info->getSaveName()],['name'=>'logo']);
            if(!$_res) {
                return show('500', '数据库错误，上传失败');
            }
            return show('200', '上传成功！');
        }else {
            return show('500', '上传失败');
        }
        return show('500', '上传失败');
    }

    /**
     * 系统banner更新，勿删除
     * @return \think\response\Json
     */
    public function banner()
    {
        $isLogin = lib\Tools::isLogin();
        if(!$isLogin) {
            return show('500','请登录后操作');
        }
        $file = request()->file('file');
        $dir = '__STATIC__/../banner/';
        $info = $file->move($dir);
        if($info && $info->getPathname()) {
            return show('200',$info->getSaveName());
        }else {
            return show('500', '上传失败');
        }
        return show('500', '上传失败');
    }


    /**
     * 富文本编辑器 图片上传通用 方法
     * json(['code' => 0, 'msg' => '', 'data' => $data]);
     * {
     *   "code": 0 //0表示成功，其它失败
     *   ,"msg": "" //提示信息 //一般上传失败后返回
     *   ,"data": {
     *       "src": "图片路径",
     *       "title": "图片名称" //可选
     *      }
     *  }
     */
    public function edit_img()
    {
        $isLogin = lib\Tools::isLogin();
        if(!$isLogin) {
            return show('500','请登录后操作');
        }
        $file = request()->file('file');
        $dir = ROOT_PATH . 'public' . DS . 'about/';
        $info = $file->move($dir);
        if($info && $info->getPathname()) {
            $data = [
                'src'    => '__STATIC__/../about/'.$info->getSaveName(),
                'title'  => 'link_image'
            ];
            return json(['code' => 0, 'msg' => 'ok', 'data' => $data]);
        }else {
            return json(['code' => 500, 'msg' => 'error', 'data' => '']);
        }
        return json(['code' => 500, 'msg' => 'error', 'data' => '']);
    }
}